﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using BLL;
using Obj;

public partial class AreaRestrita_UsuarioForm : PageBase
{

    protected void ValidaEmail(object source, ServerValidateEventArgs args)
    {
        if (hdfID.Value == String.Empty)
        {
            BLLUsuario usuario = new BLLUsuario();
            if (usuario.SelectByEmail(args.Value))
            {
                args.IsValid = false;
                ScriptManager.RegisterClientScriptBlock(
                    this,
                    typeof(Page),
                    "ToggleScript",
                    "alert('Email já cadastrado!.');",
                    true);
            }
            else
            {
                args.IsValid = true;
            }
        }
        else
        {
            args.IsValid = true;
        }
        
    }




    private int UsuarioID;
    protected void Page_Load(object sender, EventArgs e)
    {
        ValidarUsuario();
        //Carregar as Permissoes Disponíveis
        if (!Page.IsPostBack)
        {
            ddlPermissao.DataTextField = "Descricao";
            ddlPermissao.DataValueField = "PermissaoID";
            BLLPermissao regraPermissao = new BLLPermissao();
            ddlPermissao.DataSource = regraPermissao.lstPermissao();
            ddlPermissao.DataBind();

            if (Session["UsuarioID"] != null)
            {
                UsuarioID = Convert.ToInt32(Session["UsuarioID"]);
                Session["UsuarioID"] = null;
                hdfID.Value = UsuarioID.ToString();

                objUsuario usuario = new objUsuario(UsuarioID);
                BLLUsuario regra = new BLLUsuario();

                usuario = regra.SelectByID(usuario);
                CarregarTela(usuario);
            }
        }
    }
    protected void CarregarTela(objUsuario usuario)
    {
        txtEmail.Text = usuario.Email;
        txtNome.Text = usuario.Nome;
        txtSenha.Text = usuario.Senha;
        txtSenhaConfirmacao.Text = usuario.Senha;
        ddlPermissao.SelectedValue = usuario.PermissaoID.ToString();
        chkAtivo.Checked = usuario.Ativo;
    }
    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        BLLUsuario regra = new BLLUsuario();
        //objUsuario usuario = new objUsuario();
        //usuario.Ativo = chkAtivo.Checked;
        //usuario.Email = txtEmail.Text;
        if (Page.IsValid)
        {
            objUsuario Usuario = new objUsuario(txtNome.Text, txtSenha.Text);

            Usuario.Nome = txtNome.Text;
            Usuario.Senha = txtSenha.Text;
            Usuario.Email = txtEmail.Text;
            Usuario.Ativo = chkAtivo.Checked;
            Usuario.PermissaoID = Convert.ToInt32(ddlPermissao.SelectedValue);

            if ((hdfID.Value != null) && (hdfID.Value != ""))
            {
                Usuario.UsuarioID = Convert.ToInt32(hdfID.Value);
                regra.Save(Usuario, action.UPDATE);
                ScriptManager.RegisterClientScriptBlock(
                this,
                typeof(Page),
                "ToggleScript",
                "alert('Usuário alterado com sucesso!');window.location.href='Usuario.aspx'",
                true);
            }
            else
            {
                regra.Save(Usuario, action.INSERT);
                ScriptManager.RegisterClientScriptBlock(
                this,
                typeof(Page),
                "ToggleScript",
                "alert('Usuário incluído com sucesso!');window.location.href='Usuario.aspx'",
                true);
            }
        }
    }
}